﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DataAccessLayer;
using BusinessLogicLayer;
using System.Drawing;

namespace ChamCong
{
    public partial class QuanLyThamSo : BasePage
    {
        ThamSoBLL tsBLL = new ThamSoBLL();
        NhanVienBLL nvBLL = new NhanVienBLL();
        public static int fg;
        public static string ma;
        protected void Page_Load(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this.UpdatePanel2, this.UpdatePanel2.GetType(), "txtThoiGian", "initMask();", true);
            if (!IsPostBack)
            {
                //txtTest.Text = "10:00 PM";
                tbSua.Visible = false;
                dgvThamSo.DataBind();
            }
        }

        protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            GridViewRow gvr = (GridViewRow)e.Row;

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // Find your controls
                Button _button = (Button)gvr.FindControl("btnSua");

                // this is ghetto, but you can, add orderid and other data to attributes so we can grab them later           
                string ma = DataBinder.Eval(e.Row.DataItem, "MaThamSo").ToString();

                _button.Attributes.Add("MaThamSo", ma);
            } // end if this is a real row
        }

        protected void btnSua_Click(object sender, EventArgs e)
        {
            Button _button = (Button)sender;
            ma = _button.Attributes["MaThamSo"].Trim();
            // ...
            tbSua.Visible = true;
            lbMaTS.Text = ma;
            THAMSO ts = tsBLL.LayThamSo(ma);
            txtTenTS.Text = ts.TenThamSo.ToString();
            if (ma == "TGDen" || ma == "TGVe" || ma == "TGVeSang")
            {
                lblChuThich.Text = "Định dạng: HH:mm AM/PM";
                txtGiaTri.Visible = false;
                txtThoiGian.Visible = true;
                drTTLV7.Visible = false;
                txtThoiGian.Text = ts.GiaTri.ToString().Trim();
                btnReset.Visible = false;
                lbNPTT.Visible = false;
                fg = 1;
            }
            else if (ma == "TTLVT7")
            {
                drTTLV7.Visible = true;
                txtGiaTri.Visible = false;
                txtThoiGian.Visible = false;
                btnReset.Visible = false;
                lbNPTT.Visible = false;
                txtGiaTri.Text = ts.GiaTri.ToString().Trim();
                fg = 2;
            }
            else
            {
                txtGiaTri.Visible = true;
                txtThoiGian.Visible = false;
                drTTLV7.Visible = false;
                txtGiaTri.Text = ts.GiaTri.ToString().Trim();
                fg = 3;
                if (ma == "SoNPTN")
                {
                    btnReset.Visible = true;
                    lbNPTT.Visible = true;
                }
                else
                {
                    btnReset.Visible = false;
                    lbNPTT.Visible = false;
                }
            }
        }

        protected void btnHuy_Click(object sender, EventArgs e)
        {
            tbSua.Visible = false;
        }

        protected void btnChinhSua_Click(object sender, EventArgs e)
        {
            THAMSO ts = new THAMSO();
            ts.MaThamSo = ma;
            ts.TenThamSo = txtTenTS.Text.Trim();
            if (fg == 1)
            {
                if (txtThoiGian.Text.Trim() == "")
                {
                    sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Không có giá trị!");
                }
                else
                {
                    try
                    {
                        string x = "2/25/1990 " + txtThoiGian.Text.Trim();
                        DateTime t = Convert.ToDateTime(x);
                        ts.GiaTri = txtThoiGian.Text.Trim();
                        tsBLL.SuaThamSo(ts);
                        tbSua.Visible = false;
                        dgvThamSo.DataBind();

                        sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Sửa thông tin thành công!");
                    }
                    catch
                    {
                        sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Dữ liệu nhập vào phải là thời gian dạng HH:MM AM/PM!");
                    }
                }
                //txtThoiGian.Text
            }
            else if (fg == 3)
            {
                if (txtGiaTri.Text.Trim() == "")
                {
                    sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Không có giá trị!");
                }
                else
                {
                    try
                    {
                        double x = double.Parse(txtGiaTri.Text);
                        ts.GiaTri = txtGiaTri.Text.Trim();
                        tsBLL.SuaThamSo(ts);
                        tbSua.Visible = false;
                        dgvThamSo.DataBind();
                        sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Sửa thông tin thành công!");
                    }
                    catch
                    {
                        sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Dữ liệu nhập vào là một số!");
                    }
                }
            }
            else if (fg == 2)
            {
                ts.GiaTri = drTTLV7.SelectedValue;
                tsBLL.SuaThamSo(ts);
                dgvThamSo.DataBind();
                sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Sửa thông tin thành công!");
            }
        }

        protected void btnReset_Click(object sender, EventArgs e)
        {
            try
            {
                //số ngày phép thường niên:
                int SoNgay = int.Parse(tsBLL.LayGiaTri("SoNPTN"));

                //Số năm thâm niên để được tăng phép
                int SoNam = int.Parse(tsBLL.LayGiaTri("TNTangPhep"));

                List<DGVNHANVIEN> ls = nvBLL.DSNhanVien(0, "", 1);
                foreach (var a in ls)
                {
                    NHANVIEN nv = new NHANVIEN();

                    if (a.NgayVaoLam != null)
                    {
                        int _SoNamLV = (int)DateTime.Now.Year - (int)a.NgayVaoLam.Year;
                        nv.SoNgayPhepThuongNien = SoNgay + (int)_SoNamLV / SoNam;
                    }
                    else
                    {
                        nv.SoNgayPhepThuongNien = SoNgay;
                    }
                    nv.MaNV = a.MaNV;
                    nvBLL.UpdateNPTN(nv);
                }

                sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Reset số ngày nghỉ thường niên thành công!");

            }
            catch
            { }
        }

    }
}